/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import Persistencia.PersistenciaComentario;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author JAVA
 */
public class Comentario implements Comparable{
    private int id;
    private Usuario usuario;
    private String texto;
    private Date fecha;

    public Comentario(Usuario usuario, String texto, Date fecha) {
        this.usuario = usuario;
        this.texto = texto;
        this.fecha = fecha;
    }

    public Comentario(int id, Usuario usuario, String texto, Date fecha) {
        this.id = id;
        this.usuario = usuario;
        this.texto = texto;
        this.fecha = fecha;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Comentario other = (Comentario) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 13 * hash + this.id;
        return hash;
    }

    @Override
    public String toString() {
        return "Comentario{" + "id=" + id + ", usuario=" + usuario + ", texto=" + texto + ", fecha=" + fecha + '}';
    }
    
    public int guardarComentario(){
        return PersistenciaComentario.guardarComentario(this);
    }
    
    public static ArrayList<Comentario> obtenerComentarios(Usuario user){
        return PersistenciaComentario.obtenerComentarios(user);
    
    }
    
    public static ArrayList<Comentario> obtenerNotificaciones(Usuario user){
        return PersistenciaComentario.obtenerNotificaciones(user);
    
    }
    
    public static ArrayList<Comentario> obtenerNotificacionesPaginadas(Usuario user,Paginacion p ){
        return PersistenciaComentario.obtenerNotificacionesPaginadas(user,p);
    
    }

    public static int obtenerNumero(Usuario u){
        return PersistenciaComentario.numeroComentarios(u);
    }
    
    @Override
    public int compareTo(Object o) {
        Comentario com=(Comentario)o;
        if(this.getFecha().compareTo(com.getFecha())<1){
            return -1;
        }
        else if(this.getFecha().compareTo(com.getFecha())>1){
            return 1;
        }
        else{
            return 0;
        }
    }
}
